package com.atguigu.tingshu.search.client;

import com.atguigu.tingshu.search.client.impl.SearchDegradeFeignClient;
import com.atguigu.tingshu.common.result.Result;
import com.atguigu.tingshu.vo.account.AccountLockResultVo;
import com.atguigu.tingshu.vo.account.AccountLockVo;
import lombok.SneakyThrows;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 产品列表API接口
 * </p>
 *
 * @author qy
 */
@FeignClient(value = "service-search", fallback = SearchDegradeFeignClient.class)
public interface SearchFeignClient {
    /**
     * @description: 用于[service.service-album]/com/atguigu/tingshu/album/canal/CanalClientListener.java
     *               的远程调用,更新统计数据
     * @author Petrichor
     * @date 2024/1/5 19:26
     * @param albumId 专辑id
     * @param statType 统计类型：0401-播放量 0402-订阅量 0403-购买量 0403-评论数
     * @param statNum 统计数目
     * @return NULL
     **/
    @PutMapping(value = "/api/search/albumInfo/updateAlbumStat/{albumId}/{statType}/{statNum}")
    public Result updateAlbumStat(@PathVariable(value = "albumId") Long albumId ,
                                  @PathVariable(value = "statType") String statType ,
                                  @PathVariable(value = "statNum")Integer statNum);

    /**
     * @description: 更新排行榜数据
     * @author Petrichor
     * @date 2024/1/2 16:46
     **/
    @SneakyThrows  // 将当前方法抛出的异常，包装成RuntimeException，骗过编译器，使得调用点可以不用显示处理异常信息。
    @GetMapping("/api/search/albumInfo/updateLatelyAlbumRanking")
    public Result updateLatelyAlbumRanking();
}